package com.shuda.business.user.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.shuda.business.user.entity.UserEntity;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.utils.PageResult;

import java.util.List;

/**
 * 用户服务接口类
 */
public interface UserService {

    /**
     * 分页查询用户列表
     */
    PageResult<UserEntity> getUserPage(PageDTO pageDTO, QueryWrapper<UserEntity> queryWrapper);

    /**
     * 根据ID获取用户
     */
    UserEntity getById(Long id);

    /**
     * 根据用户名获取用户
     */
    UserEntity getByUsername(String username);

    /**
     * 创建用户
     */
    void createUser(UserEntity user);

    /**
     * 更新用户
     */
    void updateUser(UserEntity user);

    /**
     * 删除用户
     */
    void deleteUser(Long id);

    /**
     * 批量删除用户
     */
    void deleteUsers(List<Long> ids);

    /**
     * 更新用户状态
     */
    void updateUserStatus(Long id, String status);

    /**
     * 重置用户密码
     */
    void resetPassword(Long id, String password);

    /**
     * 分配用户角色
     */
    void assignRoles(Long userId, List<Long> roleIds);

    /**
     * 获取用户角色
     */
    List<Long> getUserRoles(Long userId);
}